Dynamic access to radio networks

ABSTRACT

A method, system, and computer usable program product for dynamic access to radio networks are provided in the illustrative embodiments. Historical information about a user&#39;s movements in a geographical area is analyzed, the analysis identifying a pattern in the user&#39;s movements. A set of transient network providers is identified in the pattern, the set of transient network providers including a first transient network provider whose network the user accesses while in the pattern or a second transient network provider whose network may be accessible to the user while in the pattern. A sequence of the transient network providers in the set of transient network providers is identified, the sequence corresponding to the order in which the user accesses the transient network providers. The pattern, the set of transient network providers, and the sequence are stored in relation with the user.

RELATED APPLICATIONS

The present application is a Divisional nonprovisional applicationclaiming the priority of the filing date of the co-pending and commonlyassigned U.S. patent application Ser. No. 12/196,348 (Attorney DocketNo. AUS920060705US1) entitled “Dynamic access to radio networks,” filedon Aug. 22, 2008.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates generally to an improved radiocommunication, and in particular, to a computer implemented method forusing a radio communication network. Still more particularly, thepresent invention relates to a computer implemented method, system, andcomputer usable program code for dynamic access to radio networks.

2. Description of the Related Art

A wireless device uses radio frequencies and radio signals in thoseradio frequencies to establish and maintain a wireless communication. Avariety of radio networks is available to a broad range of wirelessdevices for wireless communication. For example, a mobile phone, acomputer with a wireless network adapter, a human interface such as aheadset, may each utilize a variant of radio communication methods forestablishing communication with their respective data processingsystems, networks, or data processing environments.

Many presently-available devices are also capable of communicating overmore than one type of radio networks. For example, a mobile phone candetect a particular wireless service provider's Global System for Mobilecommunication (GSM, originally, Groupe Spécial Mobile) wirelesscommunication signal as well as a signal from a particular wireless datanetwork. Such a mobile device can establish wireless communication usingwhichever of the two networks is available at a time and place.

A wireless device has to satisfy specific requirements of particularwireless communication network, or a radio network, to operate usingthat radio network. Likewise, a radio network has to have certaincharacteristics for a wireless device to use that radio network forwireless communication. Furthermore, the characteristics of the wirelessdevice, the radio network, or both, are susceptible to change. Forexample, at a particular place or time, a particular provider's GSMnetwork signal may be suitable for a data application to operate on amobile phone. At another place or time, that same radio network may beunsuitable for the same application to operate on the same device.

SUMMARY OF THE INVENTION

The illustrative embodiments provide a method, system, and computerusable program product for dynamic access to radio networks.

In an embodiment, historical information about a user's movements in ageographical area is analyzed, the analysis identifying a pattern in theuser's movements. A set of transient network providers is identified inthe pattern, the set of transient network providers including a firsttransient network provider whose network the user accesses while in thepattern or a second transient network provider whose network may beaccessible to the user while in the pattern. A sequence of the transientnetwork providers in the set of transient network providers isidentified, the sequence corresponding to the order in which the useraccesses the transient network providers. The pattern, the set oftransient network providers, and the sequence are stored in relationwith the user.

BRIEF DESCRIPTION OF THE DRAWINGS

The novel features believed characteristic of the invention are setforth in the appended claims. The invention itself; however, as well asa preferred mode of use, further objectives and advantages thereof, willbest be understood by reference to the following detailed description ofan illustrative embodiment when read in conjunction with theaccompanying drawings, wherein:

FIG. 1, this figure depicts a wireless communication environment inwhich an illustrative embodiment may be implemented;

FIG. 2, this figure depicts a block diagram of a data processing systemin which illustrative embodiments may be implemented;

FIG. 3, this figure depicts a block diagram of a wireless device inwhich the illustrative embodiments may be implemented;

FIG. 4, this figure depicts a block diagram of a token in accordancewith an illustrative embodiment;

FIG. 5, this figure depicts a block diagram of dynamic access to radionetworks using tokens according to an illustrative embodiment;

FIG. 6, this figure depicts a flowchart of a process of dynamicallyaccessing a radio network in accordance with an illustrative embodiment;

FIG. 7, this figure depicts a flowchart of a process of allowing dynamicaccess to a radio network in accordance with an illustrative embodiment;

FIG. 8, this figure depicts a flowchart of a process of continuing acommunication using dynamic access to radio networks in accordance withan illustrative embodiment;

FIG. 9, this figure depicts a flowchart of a process of identifyingpatterns in a user's dynamic access to radio networks in accordance withan illustrative embodiment; and

FIG. 10, this figure depicts a flowchart of a process of negotiatingdynamic access to a radio network in accordance with an illustrativeembodiment.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

Illustrative embodiments recognize that a user may encounter severalalternative radio networks at a given place or time. For example, amobile phone user may find that a set of radio networks from a set ofwireless service providers is available along the user's route from hometo work. A set of radio networks is one or more radio networks. A set ofwireless service providers is one or more wireless service provider.

A wireless service provider may be a home network provider. A homenetwork provider (HNP) is a provider of wireless communication serviceswith whom a user has a service usage agreement or subscription. Thesubscription may determine which mobile device to use, and parameters ofthe wireless service usage. A home network is a radio network that thehome network provider provides. A device subject to a subscription witha home network provider generally prefers the home network for wirelesscommunications.

The illustrative embodiments recognize that mobile phone user in theabove example, although subscribed to a home network provider's radionetwork, may find a radio network from a set of different networkproviders more suitable for a stretch of the route. Such differentnetwork providers are called transient network providers (TNPs). A setof transient network providers is one or more transient networkproviders. A transient network is a radio network that a transientnetwork provider provides.

Furthermore, the set of transient network providers may include networkproviders providing a variety of radio networks. For example, atransient network provider may provide a GSM network, while anothertransient network provider may provide Bluetooth protocol based radionetwork. Yet another transient network provider may provide a satelliteradio network for the wireless communication. Another transient networkprovider may provide a Wi-Fi network or any combination of the severaltypes of radio networks.

Presently, a wireless device has limited options to communicate usingradio networks other than the home network. “Roaming” in a network otherthan the home network is known in wireless communications using mobilephones. However, roaming involves a preexisting contractual arrangementbetween the home network provider and the transient network providerproviding roaming services. The mobile phone registers with thetransient network provider, which then facilitates wirelesscommunication to the mobile phone over its radio network, subject to thepreexisting arrangement, if any.

A limitation is such a technology is that if an agreement does notexist, the device is not allowed to communicate on the transientnetwork. Furthermore, the roaming connectivity is determined, not by thedevice's request to the transient network but by the preexistingagreement between the home network provider and the transient networkprovider. The illustrative embodiments recognize that many otherlimitations of such a technology exist that limit the access of wirelessdevices to radio networks.

Another example of a preexisting but restrictive technology is awireless device preconfigured to detect the signals of preselected andpreconfigured radio networks. For example, a wireless network adaptercan be configured to operate on a specific home network and a specificwireless data network, such as a local area network (LAN) at home oroffice.

A limitation of such a technology is that the transient networks are notactually transient in that they are preconfigured in the device. In thisrespect, the device operates on more than one home networks and not ontransient networks that the device may not have been configured forbeforehand.

The illustrative embodiments recognize that many other limitations ofsuch preexisting technologies exist that restrict the dynamic access ofwireless devices to radio networks. To address these and other problemsrelated to accessing radio networks, the illustrative embodimentsprovide a method, system, and computer usable program product fordynamic access to radio networks. Dynamic access to a radio networkincludes determining, negotiating, establishing, and using connectivityto a radio network without requiring premade agreements orpre-configurations for connectivity to the radio network as described bythe illustrative embodiments in this disclosure.

The illustrative embodiments provide ways to detect transient networksat a given place or time. The illustrative embodiments further provideways to negotiate access to such one or more transient networks. Theillustrative embodiments further provide ways for using the negotiatedaccess to communicate over the radio network of the transient networkprovider.

The illustrative embodiments use structured information called a tokenor a bootstrap token, that a wireless device may provide to a transientnetwork provider's system for negotiating access to the transientnetwork provider's radio network. In some illustrative embodiments, thetransient network provider may also provide tokens back to the wirelessdevice to facilitate the communication over the transient networkprovider's radio network. Descriptions of FIGS. 3, 4, and 5 infra,provide details of the tokens and their operation.

Illustrative embodiments may be implemented as a combination of hardwareand software. A unit resulting from such a combination may be portableor installable in a wireless unit. An implementation may implement theillustrative embodiments in conjunction with a hardware component, suchas in a firmware, as embedded software in a hardware device, or in anyother suitable hardware or software form.

Furthermore, a particular implementation may use the illustrativeembodiments in conjunction with any application or any data processingsystem that can process wireless communication related information.Additionally, an implementation may use the illustrative embodiments inconjunction with a variety of communication protocols, such as mobilecommunications protocols GSM, CDMA, TDMA, or a variation thereof. Animplementation may also use the illustrative embodiments in conjunctionwith a variety of wireless communication protocols such as Wi-Fi, WiMax,or Bluetooth for wireless data communications. An implementation mayalso use the illustrative embodiments in conjunction with satellitecommunication protocols such as Transport Protocol and CommunicationResource Management for Mobile Satellite Networks (TRANSAT).

An implementation may use any suitable transmission method or frequencyband for transmitting the condition information. For example, animplementation of an illustrative embodiment may transmit the conditioninformation using ultra high frequency (UHF), very high frequency (VHF),frequency modulation (FM), amplitude modulation (AM), or shortwave radiobands.

Any advantages listed herein are only examples and are not limiting onthe illustrative embodiments. A particular embodiment may have some,all, or none of the advantages listed above. Furthermore, specificembodiments may realize additional or different advantages. Suchadditional or different advantages are contemplated within the scope ofthe illustrative embodiments.

With reference to FIG. 1, this figure depicts a wireless communicationenvironment in which an illustrative embodiment may be implemented. Asan example, environment 100 includes two network providers depicted byhome network provider's system 102 and transient network provider'ssystem 104. Home network provider' system 102 may provide wirelessservices for the home network using radio transceiver 106. Transientnetwork provider's system 104 may provide wireless services on atransient network using radio transceivers 108 and 110. A cellular basestation and a wireless access point are some examples of radiotransceivers 106, 108, and 110.

Home network provider's system 102 and transient network provider'ssystem 104 may communicate with their respective radio transceivers overnetwork 112. Network 112 may include one or more public or private datanetworks. An example of network 112 may be the Internet.

Wireless devices, such as mobile phone 114 and wireless network adapterequipped computer 116, may establish wireless communications using radionetworks provided by radio transceivers 106, 108, or 110. For example,mobile phone 114 may establish a session with a web application onserver 118 using the radio network provided by radio transceiver 106.

Mobile phone 114 and wireless network adapter equipped computer 116 areonly examples of a wide variety of wireless devices that may be used inconjunction with the illustrative embodiments. Server 118 may be anydata processing system that is accessible over a data network.

Furthermore, home network provider's system 102 and transient networkprovider's system 104 are shown only as examples. Any number of wirelessservice providers may provide radio networks in adjoining, overlapping,or disjoint geographical areas in a similar manner. Additionally, anyhome network provider's system, transient network provider's system,radio transceiver, and wireless device may include or have access to adata processing system for implementing the illustrative embodiments.

With reference to FIG. 2, this figure depicts a block diagram of a dataprocessing system in which illustrative embodiments may be implemented.Data processing system 200 is an example of a computer, such as aserver, a client, or another data processing capability for processinginputs from various input devices as described with respect to FIG. 1.Computer usable program code or instructions implementing the processesmay be located in the computer for the illustrative embodiments.

In the depicted example, data processing system 200 employs a hubarchitecture including North Bridge and memory controller hub (NB/MCH)202 and south bridge and input/output (I/O) controller hub (SB/ICH) 204.Processing unit 206, main memory 208, and graphics processor 210 arecoupled to north bridge and memory controller hub (NB/MCH) 202.Processing unit 206 may contain one or more processors and may beimplemented using one or more heterogeneous processor systems. Graphicsprocessor 210 may be coupled to the NB/MCH through an acceleratedgraphics port (AGP) in certain implementations.

In the depicted example, local area network (LAN) adapter 212 is coupledto south bridge and I/O controller hub (SB/ICH) 204. Audio adapter 216,keyboard and mouse adapter 220, modem 222, read only memory (ROM) 224,universal serial bus (USB) and other ports 232, and PCI/PCIe devices 234are coupled to south bridge and I/O controller hub 204 through bus 238.Hard disk drive (HDD) 226 and CD-ROM 230 are coupled to south bridge andI/O controller hub 204 through bus 240. PCI/PCIe devices may include,for example, Ethernet adapters, add-in cards, and PC cards for notebookcomputers. PCI uses a card bus controller, while PCIe does not. ROM 224may be, for example, a flash binary input/output system (BIOS). Harddisk drive 226 and CD-ROM 230 may use, for example, an integrated driveelectronics (IDE) or serial advanced technology attachment (SATA)interface. A super I/O (SIO) device 236 may be coupled to south bridgeand I/O controller hub (SB/ICH) 204.

An operating system runs on processing unit 206. The operating systemcoordinates and provides control of various components within dataprocessing system 200 in FIG. 2. The operating system may be acommercially available operating system such as Microsoft® Windows® XP(Microsoft and Windows are trademarks of Microsoft Corporation in theUnited States and other countries), or Linux® (Linux is a trademark ofLinus Torvalds in the United States and other countries). An objectoriented programming system, such as the Java™ programming system, mayrun in conjunction with the operating system and provides calls to theoperating system from Java™ programs or applications executing on dataprocessing system 200 (Java is a trademark of Sun Microsystems, Inc., inthe United States and other countries).

Instructions for the operating system, the object-oriented programmingsystem, and applications or programs are located on storage devices,such as hard disk drive 226, and may be loaded into main memory 208 forexecution by processing unit 206. The processes of the illustrativeembodiments may be performed by processing unit 206 using computerimplemented instructions, which may be located in a memory, such as, forexample, main memory 208, read only memory 224, or in one or moreperipheral devices.

The hardware in FIG. 2 may vary depending on the implementation. Otherinternal hardware or peripheral devices, such as flash memory,equivalent non-volatile memory, or optical disk drives and the like, maybe used in addition to or in place of the hardware depicted in FIG. 2.In addition, the processes of the illustrative embodiments may beapplied to a multiprocessor data processing system.

In some illustrative examples, data processing system 200 may be apersonal digital assistant (PDA), which is generally configured withflash memory to provide non-volatile memory for storing operating systemfiles and/or user-generated data. A bus system may comprise one or morebuses, such as a system bus, an I/O bus, and a PCI bus. Of course, thebus system may be implemented using any type of communications fabric orarchitecture that provides for a transfer of data between differentcomponents or devices attached to the fabric or architecture.

A communications unit may include one or more devices used to transmitand receive data, such as a modem or a network adapter. A memory may be,for example, main memory 208 or a cache, such as the cache found innorth bridge and memory controller hub 202. A processing unit mayinclude one or more processors or CPUs.

The depicted examples in FIG. 2 and above-described examples are notmeant to imply architectural limitations. For example, data processingsystem 200 also may be a tablet computer, laptop computer, or telephonedevice in addition to taking the form of a PDA. Data processing system200 may also be a unit that may be portable or installable in anautomobile.

FIG. 2 also represents an example data processing environment in whichillustrative embodiments may be implemented. FIG. 2 is only an exampleand is not intended to assert or imply any limitation with regard to theenvironments in which different embodiments may be implemented. Aparticular implementation may make many modifications to the depictedenvironments based on the following description.

With reference to FIG. 3, this figure depicts a block diagram of awireless device in which the illustrative embodiments may beimplemented. Wireless device 300 may be any of mobile phone 114 orwireless network adapter equipped computer 116 in FIG. 1 or any otherdevice capable of communicating wirelessly.

Wireless device 300 may include radio transceiver 302 for communicatingwirelessly over a radio network. Storage unit 304 may be a memory or apersistent storage for data in wireless device 300. For example, in amobile phone, the Subscriber Identity Module (SIM) card or the mobilephone's memory may serve as a storage unit 304. In some instances, suchas when wireless device 300 is a laptop computer, storage unit 304 maybe the hard disk drive, the main memory. Storage unit 304 may also be aremovable storage unit, such as a flash memory.

Processor 306 may compute or manipulate data including the data used ina wireless communication. Application space 308 may be a memory space inwireless device 300 that processor 306 may use to execute one or moreapplication 310. Application 310 may be a software application or acomponent thereof.

In one embodiment, application 310 may be the application that detects,identifies, negotiates, establishes, and uses access to radio networksaccording to the illustrative embodiments. In so performing, application310 may use a set of information that may be available to wirelessdevice 300, such as token 312. A token is a set of information formedaccording to a predetermined structure for such information.

In one embodiment, token 312 may be stored in storage unit 304 asdepicted. In another embodiment, token 312 may be a part of application310 (not shown). In another embodiment, token 312 may be locatedelsewhere in wireless device 300. In another embodiment, token 312 maybe separate from wireless device 300 but may be accessible toapplication 310, such as over a data network.

Token 312 may be based on a single sign-on standard such as securityassertion markup language (SAML), Web services foundation, OpenID,Liberty ID-FF, or any other standard or proprietary representation.Token 312 based on any standard may include one or more identifyinginformation for the user. Token 312 may also include one or moreidentifying information about a home network provider, a billing serviceprovider (BSP), and other entities associated with the user.Furthermore, token 312 may includes one or more attributes of each suchidentifying information. A set of identifying information is one or moreidentifying information. A set of attributes is one or more attributes.

A billing service provider is an entity that provides billinginformation related to a user's use of certain services, includingwireless communication services over radio networks. A billing serviceprovider may be an entity that may be the same as or different from auser's home network provider. For example, a wireless carrier may be thehome network provider for a user and may also be the billing serviceprovider for the user. As another example, the user's home networkprovider may be a wireless carrier but the user's billing serviceprovider may be an online identity management service provider.

As another example, a billing service provider may provide billing forservice usage that a home network provider may not recognize, provide,or understand. For example, a home network provider may be the billingservice provider for wireless communication services usage on a GSMnetwork but may not understand how to bill for Bluetooth network usage.A separate billing service provider may assist with billing for suchservices.

Returning to token 312, token 312 may also specify one or more usageparameters related to a user, a wireless device, an application on thewireless device, or an application elsewhere to which the user hasaccess. A set of parameters is one or more parameter. A usage parameteris a piece of information that describes a characteristic of a specificusage. For example, a usage parameter with respect to a wireless devicemay provide that the wireless device is capable of operating on acertain version of a certain wireless communication protocol.

With reference to FIG. 4, this figure depicts a block diagram of a tokenin accordance with an illustrative embodiment. Token 400 may beimplemented as token 312 in FIG. 3.

As described above, a token may include a set of identities and a set ofattributes related to each identity. An identity from the set ofidentities may describe how a user may utilize a wireless service. Suchan identity is called a service level identity. Attributes of a servicelevel identity are called service level identity attributes. Servicelevel identity attributes 402 reflect an example service level identityand the corresponding attributes in token 400.

In one embodiment, token 400 may include a single service level identityand the corresponding attributes 402. In another embodiment, token 400may include more than one service level identity and the correspondingattributes 402.

Another identity may describe how a user may use certain applicationsover that wireless service. Such an identity is called an applicationlevel identity. Attributes of an application level identity are calledapplication level identity attributes. Application level identityattributes 404 reflect an example application level identity and thecorresponding attributes in token 400. An embodiment of token 400 mayinclude one or more application level identity and the correspondingattributes 404.

In one embodiment, service level identity attributes 402 may include anidentity and corresponding attributes maintained by a home networkprovider. In another embodiment, service level identity attributes 402may include an identity and corresponding attributes maintained by abilling service provider. As an example depicted in this figure, servicelevel identity attributes 402 includes user identifier 406 that may beissued by a billing service provider. Service level identity attributes402 may further include billing service provider information 408, suchas a billing service provider identifier. Service level identityattributes 402 may further include billing parameters 410. Protocols 412may be protocols or standards that are supported by token 400. Forexample, token 400 may be usable in a single sign-on session using aparticular single sign-on standard. Furthermore, protocols 412 mayprovide a list of such protocols or standards indicating that that token400 may be usable in more than one standards-based implementation.

Service level identity attributes 402 may further include one or moreuser access parameters or attributes 414, which may describe whether,how, and what type of services a wireless service provider may provideto the user. User access parameters 414 may include information aboutthe capabilities of the wireless device, applications enabled using thewireless device, access levels and privileges of the user, and othersimilar information.

For example, in one embodiment, user access parameter 414 may providethat the user is a high priority user, such as law enforcementpersonnel. A high priority user may be provided preferential serviceover a radio network using user access parameter 414. As anotherexample, an attribute in user access parameter 414 may provide that theuser will communicate only on radio networks that are able to provide acertain bandwidth.

Application level identity attributes 404 may similarly includeattributes with respect to applications that the user may use. Useridentifier 420 may be an identifier provided to the user by a differentprovider, such as an identity management service. Attributes forapplication information 422 may describe what applications, such asemail, the user may access over the radio network. Applicationinformation 422 may be useful to a transient network provider indetermining whether the user can be adequately supported on thetransient network provider's network.

Other information 424 may be any application related information thatmay be useful in providing the user with application related service.For example, other information 424 may indicate a version of anapplication or platform that the user may be able to use.

Token 400 may be stored on the wireless device, remotely, or in aportable detachable form. Furthermore, the token may be created by theuser, the billing service provider, the home network provider, oranother entity. Additionally, a user may be able to manipulate thecontents of the token, for example, by using an identity managementapplication or portal over the Internet. In one embodiment, the contentsmay change automatically as a result of certain activities of the user,the billing service provider, the home network provider, or anotherentity.

With reference to FIG. 5, this figure depicts a block diagram of dynamicaccess to radio networks using tokens according to an illustrativeembodiment. Wireless device 502 may be implemented using mobile phone114 or wireless network adapter equipped computer 116 in FIG. 1.Transient network provider's system 504 may be implemented usingtransient network provider's system 104 in FIG. 1. Billing serviceprovider's system 506 may be a data processing system that a billingservice provider as described with respect to FIG. 4 may use. Homenetwork provider's system 508 may be implemented using home networkprovider's system 102 in FIG. 1.

This figure depicts an example scenario where a wireless device mayidentify a radio network of a transient network provider, and attempt toestablish access to the transient network provider's radio network.Wireless device 502 may send a request for access 510 including a tokento transient network provider's system 504. The token may be a tokensimilar to token 400 in FIG. 4 and may be associated with the user ofwireless device 502.

Transient network provider's system 504 receives request 510 includingthe token and parses the token. Transient network provider's system 504submits verification or negotiating inquiry 512 to the billing serviceprovider identified in the token. Verification or negotiating inquiry512 may include attributes extracted from the token, or the token itselfas received from wireless device 502.

Furthermore, transient network provider's system 504 may make inquiry512 using a protocol identified in the token. For example, a tokenaccording to token 400 in FIG. 4 may include a list of protocols 412that are supported by the token 400 in FIG. 4. Transient networkprovider's system 504 may identify one or more protocols that thetransient network provider may support for back-channel communicationwith billing service providers and home network providers. Transientnetwork provider's system 504 may select one such protocol from thetoken to make inquiry 512.

Billing service provider's system 506 may receive inquiry 512. Billingservice provider's system 506 may process inquiry 512 and send request514 to home network provider's system 508, or respond to transientnetwork provider's system 504 with response 516. Billing serviceprovider's system 506 may identify the home network provider by parsingthe token if passed in inquiry 512, or if an attribute of the identityof the home network provider is passed in inquiry 512. If billingservice provider's system 506 responds with response 516, response 516may include a confirmation or rejection of the user, the device, therequest, or a combination thereof. Response 516 may also include anyterms for providing the access and service to the user or wirelessdevice 502 on the transient network provider's radio network. Note thatin this manner, the billing service provider and the transient networkprovider need not have pre-agreed to any roaming-type arrangements.Further note that wireless device 502 need not have been preconfiguredto operate on the transient network provider's network.

As an example, billing service provider's system 506 may alternativelysend request 514 to home network provider's system 508. Request 514 mayinclude attributes identifying the user of wireless device 502, thetransient network provider of transient network provider's system 504,the billing service provider of billing service provider's system 506,type of access wireless device 502 is requesting the transient networkprovider, and any other information useful to home network provider'ssystem 508.

Home network provider's system 508 may respond with response 518 tobilling service provider's system 506. Response 518 may includeauthorization or denial for access to transient network provider'snetwork, and any terms, parameters, or instructions for such access.Home network provider's system 508 may identify some terms, parameters,or instructions as being directed to wireless device 502, billingservice provider's system 506, transient network provider's system 504or a combination thereof.

In this alternative operation, billing service provider's system 506 maysend response 516 based on response 518 received from home networkprovider's system 508. Transient network provider's system, uponreceiving response 516 may determine whether to grant the access thatwireless device 502 requested. In making this determination, transientnetwork provider's system may include the terms, parameters,authorizations, and instructions that billing service provider's system506 or home network provider's system 508 may have provided in responses516 or 518.

Based on this determination, transient network provider's system maysend response 520 to wireless device 502 authorizing or denying access.Response 520 may also include any additional information or instructionsfrom either the transient network provider, the billing serviceprovider, or the home network provider.

In one embodiment, transient network provider's system may also providea transient network provider's token in response 520. Transient networkprovider's token may be tokenized information that may facilitate thetransient network provider in providing wireless services to wirelessdevice 502 and applications thereon. For example, transient networkprovider's token may save some transient network provider relatedinformation on wireless device 502 for use in the currently requestedsession or future sessions over transient network provider's radionetwork.

As an example, transient network provider's token may include attributesthat identify the transient network provider, the current accessdetermination, and any terms or instructions associated with currentlygranted or denied access. Using this example information, the transientnetwork provider may be able to grant or deny a future access requestfrom wireless device 502 without having to make back-channel inquiry512.

As another example, transient network provider's token may include codeto track the performance and usage of the transient network provider'sservices with respect to wireless device 502. The transient networkprovider may use the resulting data from such code to bill for, tune, orimprove on the services that the transient network provider provides.

The architecture described in FIG. 5 is only one possible configurationand is used as an example for the clarity of the description. Inalternative embodiments, the billing service provider may be part of thetransient network provider or the home network provider, may be anindependent third party, or some combination thereof. The transientnetwork provider may communicate directly with the home network providerand/or the billing service provider to negotiate the authorization withthe home network provider and to provide the billing information to thebilling service provider. The billing service provider and the homenetwork provider may then communicate with each other to pull or pushthe billing information.

In one embodiment, the transient network provider and the home networkprovider may have their own billing service providers that cancommunicate in this manner with each other. While the billing serviceprovider can operate to broker the relationship between the transientnetwork provider and the home network provider when none exists, thisembodiment may provide comparable functionality when these relationshipsdo exist.

With reference to FIG. 6, this figure depicts a flowchart of a processof dynamically accessing a radio network in accordance with anillustrative embodiment. Process 600 may be implemented in a wirelessdevice, such as wireless device 502 in FIG. 5.

Process 600 begins by sending a request for access including a user'stoken to a transient network provider (step 602). Process 600 may detectmore than one transient networks at a given time or place of execution.In one embodiment, process 600 may select one transient network to sendthe request and token of step 602. In another embodiment, process 600may also send a similar access request and the user's token to more thanone transient networks (step 604).

In response to step 602, and to step 604 if used, process 600 receivesaccess permission and access attributes from one or more transientnetwork providers (step 606). Process 600 may also receive additionalinformation from the transient network provider, such as a transientnetwork provider token, or terms or instructions for access (step 608).

If process 600 receives responses from more than one transient networkprovider, process 600 selects a transient network provider forestablishing wireless communication (step 610). Process 600 establishescommunications using the selected transient network provider's radionetwork (step 612). Process 600 performs communications tasks on thetransient network provider's network using information from the user'stoken and transient network provider's token, if any (step 614). Process600 ends thereafter.

With reference to FIG. 7, this figure depicts a flowchart of a processof allowing dynamic access to a radio network in accordance with anillustrative embodiment. Process 700 may be implemented in a transientnetwork provider's system such as transient network provider's system504 in FIG. 5.

Process 700 begins by receiving an access request including a token froma user or a wireless device associated with a user (step 702). Process700 may determine the service level identity attributes from the token(step 704). As an example, the service level identity attributes mayindicate to process 700 the nature of service the user or the wirelessdevice may be requesting.

Process 700 determines any application level identity attributesassociated with the token (step 706). As an example, process 700 may usethe application level identity attributes for determining whethercertain applications can be supported, or for verifying access orservice to those applications.

Process 700 verifies the identity contained in the token of the accessrequest, and negotiates the access attributes for the access (step 708).Process 700 may perform step 708 by communicating with a process in abilling service provider's system by using a protocol identified in thetoken, or with a known home network provider in cases where arelationship with the home network provider may already exist.

Process 700 grants or denies the requested access (step 710). Process700 may perform step 710 and grant or deny access based on theinformation received and attributes negotiated with the billing serviceprovider's process in step 708.

Process 700 may also provide transient network provider relatedinformation, for example, in the form of a transient network providertoken (step 712). An embodiment may provide the transient networkprovider information in forms other than a token within the scope of theillustrative embodiments.

Process 700 provides the wireless communication services over thetransient network provider's radio network using the information in theuser's token as well as information in the transient network providertoken, if any (step 714). Process 700 ends thereafter. In oneembodiment, process 700 may perform step 714 only if process 700 grantsthe requested access. In another embodiment, process 700 may providesome limited services, such as emergency services, even if process 700does not grant the requested access.

With reference to FIG. 8, this figure depicts a flowchart of a processof continuing a communication using dynamic access to radio networks inaccordance with an illustrative embodiment. Process 800 may beimplemented in a wireless device, such as wireless device 502 in FIG. 5.Further, process 800 may be implemented in conjunction with process 600,such as following step 608 or 610 in FIG. 6.

Process 800 begins by receiving access attributes from one or moretransient network providers (step 802). Step 802 may replace or augmentstep 608 in FIG. 6. Process 800 may also receive instructions oradditional information about accessing particular transient networkprovider's network from a process in the billing service provider, aprocess in the home network provider, or both (step 804). For example,the home network provider may instruct process 800 to use only voiceservices on the transient network provider and not the data services. Asanother example, the process in billing service provider may informprocess 800 to store certain information about a particular transientnetwork provider so that future access to that transient networkprovider may be granted without verifying from the billing serviceprovider.

In one embodiment, a user may be able to set one or more preferences forselecting one or more transient network providers under certaincircumstances. An implementation of process 800 may also consider suchpreferences in step 804.

Process 800 determines if the access attributes and other informationreceived in steps 802 and 804 indicate that access to a transientnetwork provider has been granted (step 806). If access is allowed to atleast one transient network provider's radio network (“Yes” path of step806), process 800 establishes communication using that transient networkprovider's radio network (step 808).

While process 800 is negotiating access to a transient networkprovider's network, the wireless device in which process 800 may beimplemented may already be in a wireless communication session using aprevious provider's radio network. In many applications, maintaining thecontinuity of a session may be desirable. If such an application is in asession using the previous provider's network, process 800 switches theradio network from the previous provider's network to the new transientnetwork provider's network without disturbing the application's session(step 810). Process 800 ends thereafter.

If no access is available to any transient network provider's radionetwork (“No” path of step 806), process 800 determines if any sessionsare in progress using a previous provider's network as described above(step 812). If a session is in progress, (“Yes” path of step 812),process 800 terminates such session at a desirable point and in adesirable manner (step 814). Process 800 ends thereafter. If no suchsession is existing on a previous provider's network (“No” path of step812), process 800 terminates.

A wireless service provider, such as a home network provider, may beable to identify a pattern in a user's transient network usage. Forexample, a user may commute each work day to work and may switch to thesame transient network providers in the same order each day.

A user's usage may have several patterns formed in this manner. Forexample, the user, on his way back from work may switch to a differentset of transient networks, may be because better bandwidth is availablefrom different networks at different times of the day. In this manner,many patterns may be identified in a user's usage.

A service provider may be able to provide value added services to theuser based on the detection of these patterns. For example, a serviceprovider may be able to record the patterns, the sequence of transientnetworks a user uses, and negotiate access to those radio networks aheadof the user entering the service area of those networks. The user mayexperience better service quality, fewer dropped or unavailableconnections, and other wireless communication issues.

With reference to FIG. 9, this figure depicts a flowchart of a processof identifying patterns in a user's dynamic access to radio networks inaccordance with an illustrative embodiment. Process 900 may beimplemented in billing service provider's system 506 in FIG. 5 or homenetwork provider's system 508 in FIG. 5.

Process 900 begins by performing a historical analysis of a user'smovements through various home and transient networks (step 902).Process 900 identifies the transient network providers who may besuitable for use by the user according to the user's movements (step904).

Some of the identified transient network providers may have comparableor better suited transient network providers competing in the samegeographical areas. Process 900 determines which of those transientnetwork providers may be usable by the user during future movements ofsimilar movement patterns (step 906). Process 900 stores in relation tothe user the movement analysis and the information about usabletransient network providers from step 906 (step 908). Process 900 endsthereafter.

With reference to FIG. 10, this figure depicts a flowchart of a processof negotiating dynamic access to a radio network in accordance with anillustrative embodiment. Process 1000 may be implemented in wirelessdevice 502, or home network provider's system 508, or billing serviceprovider's system 506 in FIG. 5.

Process 1000 begins by determining if a user for whom a pattern ofmovement is stored and transient network providers identified is moving(step 1002). If the user is not moving (“No” path of step 1002), process1000 terminates.

If the user is moving (“Yes” path of step 1002), process 1000 determinesif the user is in a known movement path identified as one of thepatterns (step 1004). If the user is not on a known movement path (“No”path of step 1004), process 1000 terminates.

If the user is on a known movement path (“Yes” path of step 1004),process 1000 negotiates access to the next transient network provider inthe user's movement path to whose network the user is likely to requireaccess (step 1006). Process 1000 ends thereafter.

In one embodiment, process 1000 may be adapted by using additional ormodified steps to determine whether the user is deviating from a knownmovement path. Process 1000 may additionally determine, such as uponmaking the determination of deviation, where the next likely transientnetwork provider is located. In such an embodiment, process 1000 maypre-negotiate access to such likely one or more transient networks.

Such an embodiment may be particularly useful in providing high qualityservices and connectivity to high value clients or clients with highavailability requirement. Such an embodiment is contemplated within thescope of the illustrative embodiments.

When process 1000 is implemented in a wireless device, process 1000initiates the negotiation in performance of step 1006 as described withrespect to FIGS. 5 and 6. When implemented in a billing serviceprovider's system or a home network provider's system, process 1000 mayinitiate negotiation in performance of step 1006 by sending a requestfor access and the user's token to the transient network provider fromthose systems.

The components in the block diagrams and the steps in the flowcharts andtiming diagrams described above are described only as examples. Thecomponents and the steps have been selected for the clarity of thedescription and are not limiting on the illustrative embodiments. Forexample, a particular implementation may combine, omit, furthersubdivide, modify, augment, reduce, or implement alternatively, any ofthe components or steps without departing from the scope of theillustrative embodiments. Furthermore, the steps of the processesdescribed above may be performed in a different order within the scopeof the illustrative embodiments.

Thus, a computer implemented method, apparatus, and computer programproduct are provided in the illustrative embodiments for dynamic accessto radio networks. The illustrative embodiments determine when access toa radio network may be needed and send request for access to those oneor more transient networks. If more than one networks is available, theillustrative embodiments select a transient network to use or requestaccess to several transient networks.

When more than one transient networks allow access, the illustrativeembodiments determine which transient network to use based on one ormore criterion. For example, the illustrative embodiments may select oneof those transient network providers based on which of the transientnetwork provider that was first to grant access, the transient networkprovider that has the most bandwidth available, the transient networkprovider that offers access to a comparatively larger number ofapplications, and any other similarly usable criterion.

The illustrative embodiments use tokens for providing the informationfor dynamic negotiation of network access. The token may be standardsbased, may be portable from one device to another, and may becustomizable by the user, the billing service provider, the home networkprovider, or a combination thereof.

A transient network provider that provides access to a deviceimplementing the illustrative embodiments may also provide the transientnetwork provider's information in a tokenized form. The transientnetwork provider and the device of the illustrative embodiments may usethe user's token as well as the transient network provider's token fornegotiating, establishing, using, and improving a present or futureaccess to the transient network provider's network.

The invention can take the form of an entirely hardware embodiment, anentirely software embodiment, or an embodiment containing both hardwareand software elements. In a preferred embodiment, the invention isimplemented in software, which includes but is not limited to firmware,resident software, and microcode.

Furthermore, the invention can take the form of a computer programproduct accessible from a computer-usable or computer-readable mediumproviding program code for use by or in connection with a computer orany instruction execution system. For the purposes of this description,a computer-usable or computer-readable medium can be any tangibleapparatus that can contain, store, communicate, propagate, or transportthe program for use by or in connection with the instruction executionsystem, apparatus, or device.

The medium can be an electronic, magnetic, optical, electromagnetic,infrared, or semiconductor system (or apparatus or device) or apropagation medium. Examples of a computer-readable medium include asemiconductor or solid state memory, magnetic tape, a removable computerdiskette, a random access memory (RAM), a read-only memory (ROM), arigid magnetic disk, and an optical disk. Current examples of opticaldisks include compact disk-read only memory (CD-ROM), compactdisk-read/write (CD-R/W) and DVD.

Further, a computer storage medium may contain or store acomputer-readable program code such that when the computer-readableprogram code is executed on a computer, the execution of thiscomputer-readable program code causes the computer to transmit anothercomputer-readable program code over a communications link. Thiscommunications link may use a medium that is, for example withoutlimitation, physical or wireless.

A data processing system suitable for storing and/or executing programcode will include at least one processor coupled directly or indirectlyto memory elements through a system bus. The memory elements can includelocal memory employed during actual execution of the program code, bulkstorage, and cache memories, which provide temporary storage of at leastsome program code in order to reduce the number of times code must beretrieved from bulk storage during execution.

A data processing system may act as a server data processing system or aclient data processing system. Server and client data processing systemsmay include data storage media that are computer usable, such as beingcomputer readable. A data storage medium associated with a server dataprocessing system may contain computer usable code. A client dataprocessing system may download that computer usable code, such as forstoring on a data storage medium associated with the client dataprocessing system, or for using in the client data processing system.The server data processing system may similarly upload computer usablecode from the client data processing system. The computer usable coderesulting from a computer usable program product embodiment of theillustrative embodiments may be uploaded or downloaded using server andclient data processing systems in this manner.

Input/output or I/O devices (including but not limited to keyboards,displays, pointing devices, etc.) can be coupled to the system eitherdirectly or through intervening I/O controllers.

Network adapters may also be coupled to the system to enable the dataprocessing system to become coupled to other data processing systems orremote printers or storage devices through intervening private or publicnetworks. Modems, cable modem and Ethernet cards are just a few of thecurrently available types of network adapters.

The description of the present invention has been presented for purposesof illustration and description, and is not intended to be exhaustive orlimited to the invention in the form disclosed. Many modifications andvariations will be apparent to those of ordinary skill in the art. Theembodiment was chosen and described in order to explain the principlesof the invention, the practical application, and to enable others ofordinary skill in the art to understand the invention for variousembodiments with various modifications as are suited to the particularuse contemplated.

1-8. (canceled)
 9. A computer implemented method for dynamic access toradio networks, the computer implemented method comprising: analyzinghistorical information about a user's movements in a geographical area,the analysis identifying a pattern in the user's movements; identifyinga set of transient network providers in the pattern, the set oftransient network providers including one of (i) a first transientnetwork provider whose network the user accesses while in the pattern,and (ii) a second transient network provider whose network may beaccessible to the user while in the pattern; identifying a sequence ofthe transient network providers in the set of transient networkproviders, the sequence corresponding to the order in which the useraccesses the transient network providers; and storing the pattern, theset of transient network providers, and the sequence in relation withthe user.
 10. The computer implemented method of claim 9, furthercomprising: determining whether the user is presently following thepattern; determining a transient network provider in the set oftransient network provider whose network the user is presentlyaccessing; selecting a next transient network provider in the sequence;and negotiating access to the next transient network provider's networkfor the user's device such that the next transient network provider hasallowed access to the user's device before the user reaches the nexttransient network provider's network.
 11. The computer implementedmethod of claim 10, wherein the negotiating access operates such thatthe access is allowed when the user reaches the next transient networkprovider's network.
 12. The computer implemented method of claim 9,further including: selecting a preferred transient network provider fromthe set of transient network providers that is preferable over acomparable transient network provider that the user accesses; andreplacing the comparable transient network provider with the preferredtransient network provider in the sequence. 13-22. (canceled)
 23. Thecomputer implemented method of claim 10, further comprising: sending arequest for access to the next transient network, the request includinga token, the token including structured information about one of a user,a device, a home network, and a billing service; receiving, responsiveto the request, access to the next transient network.
 24. The computerimplemented method of claim 23, wherein the token includes identityattributes according to one of (i) SAML, (ii) web services federation,(iii) OpenID, and (iv) Liberty-IDFF standards.
 25. A computer usableprogram product comprising a computer usable storage medium includingcomputer usable code for dynamic access to radio networks, the computerusable code when executed causing a performance of method comprising:analyzing historical information about a user's movements in ageographical area, the analysis identifying a pattern in the user'smovements; identifying a set of transient network providers in thepattern, the set of transient network providers including one of (i) afirst transient network provider whose network the user accesses whilein the pattern, and (ii) a second transient network provider whosenetwork may be accessible to the user while in the pattern; identifyinga sequence of the transient network providers in the set of transientnetwork providers, the sequence corresponding to the order in which theuser accesses the transient network providers; and storing the pattern,the set of transient network providers, and the sequence in relationwith the user.
 26. The computer usable program product of claim 25,further comprising: determining whether the user is presently followingthe pattern; determining a transient network provider in the set oftransient network provider whose network the user is presentlyaccessing; selecting a next transient network provider in the sequence;and negotiating access to the next transient network provider's networkfor the user's device such that the next transient network provider hasallowed access to the user's device before the user reaches the nexttransient network provider's network.
 27. The computer usable programproduct of claim 26, wherein the negotiating access operates such thatthe access is allowed when the user reaches the next transient networkprovider's network.
 28. The computer usable program product of claim 25,further including: selecting a preferred transient network provider fromthe set of transient network providers that is preferable over acomparable transient network provider that the user accesses; andreplacing the comparable transient network provider with the preferredtransient network provider in the sequence.
 29. The computer usableprogram product of claim 26, further comprising: sending a request foraccess to the next transient network, the request including a token, thetoken including structured information about one of a user, a device, ahome network, and a billing service; receiving, responsive to therequest, access to the next transient network.
 30. The computer usableprogram product of claim 29, wherein the token includes identityattributes according to one of (i) SAML, (ii) web services federation,(iii) OpenID, and (iv) Liberty-IDFF standards.
 31. The computer usableprogram product of claim 25, wherein the computer usable code is storedin a computer readable storage medium in a data processing system, andwherein the computer usable code is transferred over a network from aremote data processing system.
 32. The computer usable program productof claim 25, wherein the computer usable code is stored in a computerreadable storage medium in a server data processing system, and whereinthe computer usable code is downloaded over a network to a remote dataprocessing system for use in a computer readable storage mediumassociated with the remote data processing system.
 33. A data processingsystem for clustering dynamic access to radio networks, the dataprocessing system comprising: a storage device including a storagemedium, wherein the storage device stores computer usable program code;and a processor, wherein the processor executes the computer usableprogram code, and wherein the computer usable program code comprises:computer usable code for analyzing historical information about a user'smovements in a geographical area, the analysis identifying a pattern inthe user's movements; computer usable code for identifying a set oftransient network providers in the pattern, the set of transient networkproviders including one of (i) a first transient network provider whosenetwork the user accesses while in the pattern, and (ii) a secondtransient network provider whose network may be accessible to the userwhile in the pattern; computer usable code for identifying a sequence ofthe transient network providers in the set of transient networkproviders, the sequence corresponding to the order in which the useraccesses the transient network providers; and computer usable code forstoring the pattern, the set of transient network providers, and thesequence in relation with the user.
 34. The data processing system ofclaim 33, further comprising: computer usable code for determiningwhether the user is presently following the pattern; computer usablecode for determining a transient network provider in the set oftransient network provider whose network the user is presentlyaccessing; computer usable code for selecting a next transient networkprovider in the sequence; and computer usable code for negotiatingaccess to the next transient network provider's network for the user'sdevice such that the next transient network provider has allowed accessto the user's device before the user reaches the next transient networkprovider's network.
 35. The data processing system of claim 34, whereinthe negotiating access operates such that the access is allowed when theuser reaches the next transient network provider's network.
 36. The dataprocessing system of claim 33, further including: computer usable codefor selecting a preferred transient network provider from the set oftransient network providers that is preferable over a comparabletransient network provider that the user accesses; and computer usablecode for replacing the comparable transient network provider with thepreferred transient network provider in the sequence.
 37. The dataprocessing system of claim 34, further comprising: computer usable codefor sending a request for access to the next transient network, therequest including a token, the token including structured informationabout one of a user, a device, a home network, and a billing service;computer usable code for receiving, responsive to the request, access tothe next transient network.
 38. The data processing system of claim 37,wherein the token includes identity attributes according to one of (i)SAML, (ii) web services federation, (iii) OpenID, and (iv) Liberty-IDFFstandards.